package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"strings"
)

//创建一个初始长度为0、容量为10的int型切片，调用rand.Intn(128)100次，往切片里面添加100个元素，利用map统计该切片里有多少个互不相同的元素。
func getElementNum() {
	var ss = make([]int, 0, 10)
	var mm = map[int]int{}
	for i := 0; i < 100; i++ {
		ss = append(ss, rand.Intn(128))
	}
	//fmt.Println(ss)
	for i, ele := range ss {
		mm[ele] = i
	}
	fmt.Println(len(mm))
}

//实现一个函数func arr2string(arr []int) string，比如输入[]int{2,4,6}，返回“2 4 6”。输入的切片可能很短，也可能很长
func arr2string(arr []int) string {
	stringArr := strings.Builder{}
	if arr == nil {
		return ""
	} else {
		for _, index := range arr {
			stringArr.WriteString(strconv.Itoa(index))
			stringArr.WriteString(" ")
		}
		//fmt.Println(stringArr.String())
		return stringArr.String()[:len(stringArr.String())-1]
	}

}

func main() {
	getElementNum()
	//arr2string([]int{2, 4, 6})
	fmt.Println(arr2string([]int{2, 4, 6}))

}
